package com.falser.user.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.falser.common.dto.UserInfoDTO;
import com.falser.user.dto.LoginSuccessDTO;
import com.falser.user.dto.UserDetailDTO;
import com.falser.user.entity.SysUser;
import com.falser.user.vo.LoginVO;
import com.falser.user.vo.RegisterVO;
import com.falser.user.vo.SysUserInsertOrUpdateVO;

/**
 * 用户信息表(SysUser)表服务接口
 *
 * @author makejava
 * @since 2021-09-16 20:49:57
 */
public interface SysUserService extends IService<SysUser> {

    /**
     * 注册
     *
     * @param vo 签证官
     */
    void register(RegisterVO vo);

    /**
     * 添加系统用户
     *
     * @param vo 签证官
     */
    void addSystemUser(SysUserInsertOrUpdateVO vo);

    /**
     * 登录
     *
     * @param vo 签证官
     * @return {@link LoginSuccessDTO}
     */
    LoginSuccessDTO login(LoginVO vo);

    /**
     * 注销
     */
    void logout();

    /**
     * 获取用户信息
     *
     * @return {@link UserInfoDTO}
     */
    UserInfoDTO getUserInfo();

    /**
     * 获取用户详细的id
     *
     * @param id id
     * @return {@link UserDetailDTO}
     */
    UserDetailDTO getUserDetailById(Long id);

    void deleteUserById(Long id);
}


